home *** CD-ROM | disk | FTP | other *** search
Wrap
PPPPRRRRCCCCTTTTLLLL((((2222)))) PPPPRRRRCCCCTTTTLLLL((((2222)))) NNNNAAAAMMMMEEEE prctl - operations on a process CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ttttyyyyppppeeeessss....hhhh>>>> ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////rrrreeeessssoooouuuurrrrcccceeee....hhhh>>>> ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////pppprrrrccccttttllll....hhhh>>>> ppppttttrrrrddddiiiiffffffff____tttt pppprrrrccccttttllll ((((uuuunnnnssssiiiiggggnnnneeeedddd ooooppppttttiiiioooonnnn,,,, ............))));;;; DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN _pppp_rrrr_cccc_tttt_llll provides information about processes and the ability to control certain of their attributes. The return type _p_t_r_d_i_f_f__t is used so that _pppp_rrrr_cccc_tttt_llll can return an integral value that is large enough to return a pointer/address. _o_p_t_i_o_n specifies one of the following actions: PPPPRRRR____MMMMAAAAXXXXPPPPRRRROOOOCCCCSSSS returns the system imposed limit on the number of processes per user. PPPPRRRR____MMMMAAAAXXXXPPPPPPPPRRRROOOOCCCCSSSS returns the maximum number of processors the calling process can utilize. If the caller is restricted (see _ssss_yyyy_ssss_mmmm_pppp(2)) to run on a particular processor then PPPPRRRR____MMMMAAAAXXXXPPPPPPPPRRRROOOOCCCCSSSS will return 1. If some of the processors in the complex have been restricted (see _mmmm_pppp_aaaa_dddd_mmmm_iiii_nnnn(1)) these will not be counted. PPPPRRRR____IIIISSSSBBBBLLLLOOOOCCCCKKKKEEEEDDDD returns 1 if the specified process is currently blocked. The second argument, interpreted as type _pppp_iiii_dddd______tttt, specifies the target process's pid. Passing in 0 implies the caller. Since other processes could have subsequently unblocked the subject process, the result should be considered as a snapshot only. PPPPRRRR____GGGGEEEETTTTSSSSTTTTAAAACCCCKKKKSSSSIIIIZZZZEEEE returns the current process's maximum stack size in bytes. This size is an upper limit on the size of the current process's stack. PPPPRRRR____SSSSEEEETTTTSSSSTTTTAAAACCCCKKKKSSSSIIIIZZZZEEEE sets the maximum stack size for the current process. This affects future stack growths and forks only. The new value, suitably rounded, is returned. The second argument, interpreted as an _rrrr_llll_iiii_mmmm______tttt, defines the desired stack size in bytes. This option and the RRRRLLLLIIIIMMMMIIIITTTT____SSSSTTTTAAAACCCCKKKK option of _ssss_eeee_tttt_rrrr_llll_iiii_mmmm_iiii_tttt(2) act on the same value. PPPPRRRR____UUUUNNNNBBBBLLLLKKKKOOOONNNNEEEEXXXXEEEECCCC sets a flag so that when the calling process subsequently calls _eeee_xxxx_eeee_cccc(2), the process whose pid is specified by the second argument is unblocked. This can be used in conjunction with the PPPPRRRR____BBBBLLLLOOOOCCCCKKKK option of _ssss_pppp_rrrr_oooo_cccc(2) to provide race-free process creation. PPPPaaaaggggeeee 1111 PPPPRRRRCCCCTTTTLLLL((((2222)))) PPPPRRRRCCCCTTTTLLLL((((2222)))) PPPPRRRR____SSSSEEEETTTTEEEEXXXXIIIITTTTSSSSIIIIGGGG controls whether all members of a share group will be signaled if any one of them leaves the share group (whether via _eeee_xxxx_iiii_tttt(2) or _eeee_xxxx_eeee_cccc(2) or as the result of an abnormal termination, such as caused by a segmentation violation or an uncatchable signal). If the second argument, interpreted as an _iiii_nnnn_tttt is 0, then normal IIIIRRRRIIIIXXXX process termination rules apply, namely that the parent might be sent a SSSSIIIIGGGGCCCCLLLLDDDD upon death of child, but no indication of death of parent is given. If the second argument is a valid signal number [see _ssss_iiii_gggg_nnnn_aaaa_llll(2)] then if any member of a share group leaves the share group, a signal is sent to ALL surviving members of the share group. PPPPRRRR____SSSSEEEETTTTAAAABBBBOOOORRRRTTTTSSSSIIIIGGGG controls whether all members of a share group will be signaled if any one of them exits the share group unnaturally. This option works like PPPPRRRR____SSSSEEEETTTTEEEEXXXXIIIITTTTSSSSIIIIGGGG ,,,, except that the signal is not generated if the share group member exits normally, that is, by way of _eeee_xxxx_iiii_tttt(2) or _eeee_xxxx_eeee_cccc(2). Further, the PPPPRRRR____SSSSEEEETTTTAAAABBBBOOOORRRRTTTTSSSSIIIIGGGG and PPPPRRRR____SSSSEEEETTTTEEEEXXXXIIIITTTTSSSSIIIIGGGG actions cannot be in effect simultaneously; a call which specifies either of these nullifies any previous calls for these actions. PPPPRRRR____RRRREEEESSSSIIIIDDDDEEEENNNNTTTT makes the process immune to process swapout. Its pages are still subject to paging - these can be locked by using _mmmm_pppp_iiii_nnnn(2). PPPPRRRR____TTTTEEEERRRRMMMMCCCCHHHHIIIILLLLDDDD causes the calling process to be automatically sent a SSSSIIIIGGGGHHHHUUUUPPPP when its parent process dies. This effect is NNNNOOOOTTTT inherited: it applies _o_n_l_y to the process that requested it. The caller must have set its handler for SSSSIIIIGGGGHHHHUUUUPPPP to either be caught or SSSSIIIIGGGG____DDDDFFFFLLLL. Note that processes started in the background have their SSSSIIIIGGGGHHHHUUUUPPPP handler set to SSSSIIIIGGGG____IIIIGGGGNNNN by the shell. Child processes getting a SSSSIIIIGGGGHHHHUUUUPPPP signal should probably check the value of _gggg_eeee_tttt_pppp_pppp_iiii_dddd(2) to be sure their parent really died (and thus their parent pid will be set to 1). PPPPRRRR____AAAATTTTTTTTAAAACCCCHHHHAAAADDDDDDDDRRRR attaches the virtual segment containing the address given by the third argument in the process whose pid is given by the second argument to the calling process. The second argument (pid) is interpreted as a _pppp_iiii_dddd______tttt. The third argument (address) is interpreted as a _cccc_aaaa_dddd_dddd_rrrr______tttt. Both processes must be members of the same share group. The address of where the virtual segment was attached is returned. This address has the same logical offset into the virtual space as the passed in address. A process may always attach a portion of its address space back onto itself without being a share group process. PPPPaaaaggggeeee 2222 PPPPRRRRCCCCTTTTLLLL((((2222)))) PPPPRRRRCCCCTTTTLLLL((((2222)))) PPPPRRRR____AAAATTTTTTTTAAAACCCCHHHHAAAADDDDDDDDRRRRPPPPEEEERRRRMMMM performs the same function as PR_ATTACHADDR but allows the caller to specify the desired protection attributes of the attach which must be a subset of the attributes on the region being attached. Also returns to the caller additional information about the region attached, like base address and size of region. In order to allow the additional attributes, the second argument is a pointer to the input parameter block which is of type prattach_args_t and the third argument is a pointer to the return values and is of type prattach_results_t. Intended for use by MPI libraries. PPPPRRRR____DDDDEEEETTTTAAAACCCCHHHHAAAADDDDDDDDRRRR is not implemented yet. PPPPRRRR____GGGGEEEETTTTSSSSHHHHMMMMAAAASSSSKKKK returns the mask stating which resources are being shared with the share group member whose pid is specified by the second argument. It can also be used to gather information about the existence of other processes. If the second argument is 0 or equal to the callers pid, then the callers share mask is returned. If the caller is not a member of a share group then an error is returned. If the process specified by the second argument does not exist, is not a member of the callers share group, or the caller does not have permission to query the process, an error is returned. If the caller and target process are in the same share group the bit-wise 'and' of the callers share mask and the target process's share mask is returned. PPPPRRRR____GGGGEEEETTTTNNNNSSSSHHHHAAAARRRREEEE returns the number of processes in the share group. If the calling process has never been part of a share group 0 is returned. PPPPRRRR____CCCCOOOORRRREEEEPPPPIIIIDDDD Changes the name of the file used to hold the core image of the process from _cccc_oooo_rrrr_eeee to _cccc_oooo_rrrr_eeee_...._p_i_d. The second argument is interpreted as a _pppp_iiii_dddd______tttt and specifies which process to act on. A value of 0 signifies the calling process. If the third argument, interpreted as an _iiii_nnnn_tttt, is zero then the core file name is changed back to the standard name - _cccc_oooo_rrrr_eeee. This state is inherited on _ffff_oooo_rrrr_kkkk(2) and _ssss_pppp_rrrr_oooo_cccc(2) and is reset on _eeee_xxxx_eeee_cccc(2). Note that this mechanism may be defeated by some system wide configuration settings. PPPPRRRR____IIIINNNNIIIITTTT____TTTTHHHHRRRREEEEAAAADDDDSSSS prepares a process for multi-threaded operation. PPPPRRRR____TTTTHHHHRRRREEEEAAAADDDD____CCCCTTTTLLLL Detailed control operations for threaded processes. PPPPRRRR____LLLLAAAASSSSTTTTSSSSHHHHEEEEXXXXIIIITTTT Reserved for last sproc exit PPPPaaaaggggeeee 3333 PPPPRRRRCCCCTTTTLLLL((((2222)))) PPPPRRRRCCCCTTTTLLLL((((2222)))) _pppp_rrrr_cccc_tttt_llll will fail if one or more of the following are true: [ESRCH] The second argument passed with the PPPPRRRR____IIIISSSSBBBBLLLLOOOOCCCCKKKKEEEEDDDD, PPPPRRRR____UUUUNNNNBBBBLLLLKKKKOOOONNNNEEEEXXXXEEEECCCC, PPPPRRRR____CCCCOOOORRRREEEEPPPPIIIIDDDD, or PPPPRRRR____GGGGEEEETTTTSSSSHHHHMMMMAAAASSSSKKKK option doesn't match the pid of any process. [EINVAL] _o_p_t_i_o_n is not valid. [EINVAL] The value given for the new maximum stack size is negative or exceeds the maximum process size allowed. [EINVAL] The value given for the PPPPRRRR____SSSSEEEETTTTEEEEXXXXIIIITTTTSSSSIIIIGGGG option is not a valid signal number. [EINVAL] The calling process already has specified a process (or the specified process is the caller itself) to be unblocked on exec via the PPPPRRRR____UUUUNNNNBBBBLLLLKKKKOOOONNNNEEEEXXXXEEEECCCC option. [EINVAL] The PPPPRRRR____GGGGEEEETTTTSSSSHHHHMMMMAAAASSSSKKKK option was specified and the second argument does not correspond to a pid of a process that is in the caller's share group. [EINVAL] The PPPPRRRR____GGGGEEEETTTTSSSSHHHHMMMMAAAASSSSKKKK option was specified and the caller is not a share group member. [EINVAL] the _PPPP_RRRR______AAAA_TTTT_TTTT_AAAA_CCCC_HHHH_AAAA_DDDD_DDDD_RRRR_PPPP_EEEE_RRRR_MMMM call has an invalid flag set in the flag member of the input argument of type struct prattach_args_t. The only valid flag is _PPPP_RRRR_AAAA_TTTT_TTTT_AAAA_CCCC_HHHH______AAAA_LLLL_IIII_GGGG_NNNN. [EACCES] The caller of the _PPPP_RRRR______AAAA_TTTT_TTTT_AAAA_CCCC_HHHH_AAAA_DDDD_DDDD_RRRR does not have the correct permissions to attach to the address space. [EACCES] The caller of the _PPPP_RRRR______AAAA_TTTT_TTTT_AAAA_CCCC_HHHH_AAAA_DDDD_DDDD_RRRR_PPPP_EEEE_RRRR_MMMM does not have the correct permissions to attach to the address space. [EBUSY] There is no kernel memory available at the moment to complete the PPPPRRRR____IIIINNNNIIIITTTT____TTTTHHHHRRRREEEEAAAADDDDSSSS operation. [EFAULT] The third argument of the _PPPP_RRRR______AAAA_TTTT_TTTT_AAAA_CCCC_HHHH_AAAA_DDDD_DDDD_RRRR points to a memory address that is not in a valid part of the process address space. [EFAULT] The second argument of the _PPPP_RRRR______AAAA_TTTT_TTTT_AAAA_CCCC_HHHH_AAAA_DDDD_DDDD_RRRR_PPPP_EEEE_RRRR_MMMM points to a memory address that is not in a valid part of the process address space. [EPERM] The caller does not have permission to unblock or query the process specified by the second argument for the PPPPRRRR____UUUUNNNNBBBBLLLLKKKKOOOONNNNEEEEXXXXEEEECCCC, PPPPRRRR____IIIISSSSBBBBLLLLOOOOCCCCKKKKEEEEDDDD, PPPPRRRR____CCCCOOOORRRREEEEPPPPIIIIDDDD, or PPPPRRRR____GGGGEEEETTTTSSSSHHHHMMMMAAAASSSSKKKK options. PPPPaaaaggggeeee 4444 PPPPRRRRCCCCTTTTLLLL((((2222)))) PPPPRRRRCCCCTTTTLLLL((((2222)))) SSSSEEEEEEEE AAAALLLLSSSSOOOO blockproc(2), signal(2), setrlimit(2), sproc(2), usinit(3P). DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS Upon successful completion, _pppp_rrrr_cccc_tttt_llll returns the requested information. Otherwise, a value of -1 is returned to the calling process, and _eeee_rrrr_rrrr_nnnn_oooo is set to indicate the error. PPPPaaaaggggeeee 5555